package com.itheima.reggie.common;

/**
 * 基于ThreadLocal封装工具类，用户保存和获取当前登录用户id
 */
public class BaseContext {
    private static ThreadLocal<Long> threadLocal = new ThreadLocal<>();
    // private static ThreadLocal<Employee> threadLocal2 = new ThreadLocal<>();
    /*
     * ThreadLocal 底层原理里面封装一个Map（存储key与value数据）
     *     为每一个线程存储数据
     * */

    /**
     * 设置值
     *
     * @param id
     */
    public static void setCurrentId(Long id) {
        threadLocal.set(id);
        //本质是将  当前线程id作为key, 传入这个方法的数据作为value  存储为一个键值对
    }

    /**
     * 获取值
     *
     * @return
     */
    public static Long getCurrentId() {
        return threadLocal.get();
        //本质 会获取当前线程的id作为key获取对应的value
    }

    // public static void setEmployee(Employee employee){
    //     threadLocal2.set(employee);
    //     //本质是将  当前线程id作为key, 传入这个方法的数据作为value  存储为一个键值对
    // }
    // public static Employee getEmployee(){
    //     return threadLocal2.get();
    //     //本质 会获取当前线程的id作为key获取对应的value
    // }
}